User discussion relating to common subject matter

ABSTRACT

A method and computer system including launching a dialogue window for two users to communicate with one another via respective client devices relating to a particular subject. A search query is received from an additional user including a keyword associated with the particular subject. In response to the request, a backlog of a recent discussion between the two users relating to the particular subject is retrieved and provided to the additional user, wherein the backlog includes a suggested link relating to the recent discussion.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.11/160,897, filed Jul. 14, 2005, the entirety of which is incorporatedherein by reference.

FIELD OF THE INVENTION

The present invention relates to a computer-implemented technique forenabling users who are searching for common subject matter on a computernetwork, such as by using web browser-based search engines, tocommunicate with one another to form a search party to share informationbetween users that are actively conducting a search relating to thecommon subject matter. There is no need for the users to already knoweach other or otherwise be associated with one another.

DESCRIPTION OF RELATED ART

Despite the tremendous growth of raw data on the World Wide Web, peopleare often the best source of information due to their ability to tailordata to specific situations. Chat rooms, such as Internet Relay Chat(IRC), and Yahoo!® chat, web forums, and mailing lists, for instance,allow like-minded people to communicate with one another and disseminateinformation. For example, a group of people interested in cross-countryskiing might start a chat room or web forum on this topic. Theseapproaches work well for people with a persistent interest in a topic.However, people who have only an infrequent or ephemeral interest in asubject are not likely to seek out a discussion channel on the subject.Moreover, no mechanism is available for enabling users who are searchingfor common subject matter on the Internet or other computer network,such as by entering search terms in a web browser for a search engine,to communicate with one another.

BRIEF SUMMARY

The present invention addresses the above and other issues by providinga technique for enabling users who are searching for common subjectmatter on a computer network to communicate with one another.

In one aspect of the invention, a computer-implemented method isprovided for enabling users searching for common subject matter on acomputer network to communicate with one another. The method includesreceiving respective search queries made by the users via respectiveclient devices in searching the computer network, determining which ofthe respective search queries are for common subject matter, andenabling particular ones of the users whose search queries are for thecommon subject matter to communicate with one another via theirrespective client devices.

In another aspect of the invention, a computer-based system is providedfor enabling users searching for common subject matter on a computernetwork to communicate with one another. The system includes at leastone server resource for receiving respective search queries made by theusers via respective client devices in searching the computer network,for determining which of the respective search queries are for commonsubject matter, and for enabling particular one of the users whoserespective search queries are for the common subject matter tocommunicate with one another via their respective client devices.

In a further aspect of the invention, a computer-implemented method isprovided for enabling a particular user searching for subject matter ona computer network to communicate with other users who are alsosearching for the subject matter. The method includes transmitting, toat least one server resource, a search query made by the particular uservia a respective client device in searching the computer network. The atleast one server resource identifies the other users who have enteredsearch queries for the subject matter via their respective clientdevices. The method further includes receiving data from the at leastone server resource for enabling the particular user to communicate withthe other users.

In a further aspect, a computer-implemented method is provided forenabling users searching for common subject matter on a computer networkto communicate with one another. The method includes receiving, at aserver resource, respective search queries made by the users viarespective client devices in searching the computer network, determiningwhich of the respective search queries are for the common subjectmatter, performing respective searches using the respective searchqueries of particular ones of the users whose respective search queriesare for the common subject matter to obtain respective search results,and transmitting the respective search results with scripts to therespective client devices of the particular users. The scripts areexecutable at the respective client devices of the particular users toenable the particular users to communicate with one another via theirrespective client devices.

In yet another aspect, a computer-implemented method is provided forenabling a particular user searching for subject matter on a computernetwork to communicate with other users who are also searching for thesubject matter. The method includes transmitting, to at least one serverresource, a search query made by the particular user via a respectiveclient device in searching the computer network for the subject matter,receiving search results with a script from the at least one serverresource, wherein the search results are responsive to the search query,and executing the script to enable the particular user to communicatewith the other users who are also searching for the subject matter viarespective client devices.

Corresponding program storage devices are also provided.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features, benefits and advantages of the presentinvention will become apparent by reference to the following text andfigures, with like reference numbers referring to like structures acrossthe views, wherein:

FIG. 1 illustrates an exemplary computer network that enables users whoare searching for common subject matter to communicate with one another,according to an embodiment of the present invention;

FIG. 2 illustrates a computer architecture that enables a user tocommunicate with other users who are searching for common subjectmatter, according to the invention;

FIG. 3 illustrates a method in which a user communicates with otherusers who are searching for common subject matter, and recommends a linkto the other users, according to the invention;

FIG. 4 illustrates a user interface of a conventional search engine;

FIG. 5 illustrates the user interface of FIG. 4 in which search resultsare displayed, and which further indicates that a search party relatingto searched for subject matter is available, according to the invention;

FIG. 6 illustrates a search party preview window, according to theinvention;

FIG. 7 illustrates a search party window, according to the invention;

FIG. 8 illustrates the user interface of FIG. 4 which further includes abutton that allows a user to recommend a resource located by the searchengine to other users in the search party, according to the invention;

FIG. 9 illustrates a user interface of a search engine which displays adetailed view of a selected resource located by the search engine, wherethe button that allows the user to recommend the resource to other usersin the search party is selected, according to the invention;

FIG. 10 illustrates a window for entering an annotation to accompany arecommended resource, according to the invention;

FIG. 11 illustrates the search party window of FIG. 7 in which therecommended resource and the accompanying annotation are displayed,according to the invention; and

FIG. 12 illustrates a method for carrying out a web page-basedembodiment for enabling users who are searching for common subjectmatter to communicate with one another, according to the invention.

DETAILED DESCRIPTION

FIG. 1 illustrates a computer network that enables users who aresearching for common subject matter to communicate with one another,according to the invention. The network, shown generally at 100,includes a chat server 110, a search registry server 120, a searchengine server 130, content servers 135 and a number of client devicessuch as personal computers (PC) 150, 160 and 170. The clients andservers can communicate with one another via a communication medium 140.The client PCs run applications such as web browsers for search enginesthat allow the respective users to search resources available on thenetwork 100, such as resources stored at the search engine server 130 orat the content servers 135. The resources can include web pages, otherfiles with text or graphics, multimedia files, and so forth. Thecommunication medium 140 can be provided by the Internet or a privateintranet, for instance.

When a user enters a search query in a search engine running at therespective PC, the PC transmits the query to the search engine server130. Generally, search engines use automated software programs known asspiders or bots to survey a network such as the Web to build a database.Resources such as web documents are retrieved by the programs andanalyzed, typically by keyword, and data collected from each resource isadded to a search engine index. When the search engine server 130receives a user's query, the query is checked against the searchengine's index of all the web pages it has analyzed. Links to theresources that match the query most closely are then returned to theuser and displayed on the search engine interface, typically ranked inorder of relevance. The user can then select a desired link to view theresource in detail. Resources that are frequently requested by users maybe stored locally at the search engine server 130 for quicker access.Otherwise, the search engine server 130 provides a link to the user thatallows the resource to be accessed directly from one of any number ofcontent servers worldwide. Different search engine servers may beoperated by different entities. Example search engines that arecurrently popular include Google, Yahoo!®, AltaVista, and Ask Jeeves,which are registered trademarks of their respective owners.

A chat server 110 allows any number of users to engage in an on-linedialogue with one another such as an on-line chat. A chat generallyrefers to a real-time communication between users via computer. Once achat has been initiated, a user can enter text by typing on thekeyboard, and the entered text will appear on the other users' screens.

In accordance with the invention, a search registry server 120 isprovided which also receives the search queries from the users. Thesearch registry server 120 analyzes the search queries to identify usersthat are searching for common subject matter. A similarity in the searchterms provided by different users can be used to establish that theusers have a mutual interest in a topic. For example, if a number ofusers enter the search term “superbowl” on respective search engineinterfaces, software running at the search registry server 120 canconclude that the users are interested in the same topic. The searchterms need not be identical in order for the search registry server 120to determine that they relate to common subject matter. Groupings ofrelated words can be established using a variety of well-knowntechniques. For example, large corpuses of data can be scanned forproximal occurrences of words. Using these groupings, associationsbetween different search terms can be automatically inferred. Forinstance, it may be inferred that the search terms “superbowl” and“football” are related to common subject matter, such that usersproviding these terms should be joined in a common search party, such asa chat room or other online dialogue. It can be concluded that searchqueries relate to common subject matter when they include the same orsynonymous keywords, in the same order or any order, or when acommonality is indicated by techniques such as word associations,probabilistic analysis or fuzzy matching, for instance.

When it is determined that the search terms of different users relate tocommon subject matter, the search registry server 120 sends a message tothe identified users informing them that other users are currentlysearching for information relating to the same subject matter. Thesearch registry server 120 can also communicates with the chat server110 to initiate an on-line dialogue such as a chat, which is onepossible aspect of the search party, for the subject matter. The chatserver 110 or the search registry server 120 transmits a message to theidentified users to inform them that the dialogue has been created andto give them the opportunity to participate in the search party.Additional users that subsequently search for the common subject mattercan also be identified and given the opportunity to participate. Theusers can be informed of the existence of the dialogue, how many usersare currently actively participating and/or how many users are eligibleto participate. The number of users that have declined to participate inthe dialogue can be inferred based on the difference between the numberof users eligible and the number of users participating. The searchregistry server 120 can also communicate with the chat server 110 todetermine how many users are currently participating in a dialogue.

Moreover, multiple dialogues can be conducted at the same time fordifferent subjects. Users that participate in a dialogue can view thesearch terms that were provided by the other users in the dialogue aswell as view comments entered by the other users, and enter their owncomments to share with the other users. Additionally, the users canshare links to resources, such as web pages, with the other users in thedialogue. Users can also elect to have any search terms they provide,until they leave the search party, automatically shared with the otherusers accessing the search party, without requiring manual userintervention. Once in a dialogue, a user may exit by entering a specificcommand, or the user may be automatically removed after a specifiedtime-out period in which the user is inactive, for instance.

The search registry server 120 may employ a defined time window inanalyzing which search queries are for common subject matter. In onepossible approach, a relatively small time window, such as one minute ora few minutes, is used so that the dialogues will contain real-timeexchanges between users that are currently on line. However, it is alsopossible to use a longer time window so that a user can be matched to adialogue that was created some time ago.

Note that the chat server 110, search registry server 120, and thesearch engine server 130 need not be independent, but may be integratedin whole or in part. Generally, any server resource arrangement,regardless of the number, configuration and location of specific servermachines, may be used to achieve the functionality described herein.

FIG. 2 illustrates a computer architecture 200 that enables a user tocommunicate with other users who are searching for common subjectmatter, according to the invention. At each of the client PCs 150, 160and 170, software, firmware, micro code and hardware may be used toprovide the specified architecture. The hardware 230 can include one ormore processors that can execute any type of computer code devices, suchas software, firmware, micro code or the like, to achieve thefunctionality described herein. A computer program product or programstorage device that tangibly embodies such computer code devices, suchas a memory device, may also be provided in a manner apparent to thoseskilled in the art. An operating system 220 can be provided via softwareexecuted by the hardware. Application programs 210 can include aconventional search engine application such as a web browser 212, alongwith a software plug-in 216 that is provided according to the inventionfor achieving the functionality described herein. The use of a plug-in216 allows existing web browsers to be used. Optionally, the web browser212 and the software plug-in 216 need not be separate softwarecomponents, but their functions may be integrated in whole or in part.That is, the chat feature and the search party notifications can beimplemented entirely in the context of a web page, and thereby displayedinside a web browser, without the need for an additional softwareplug-in to the web browser, as discussed further in connection with FIG.12.

When a user performs a search using the search engine software such asthe web browser 212, the plug-in software 216, which may be provided asan extension to the web browser 212, notices the search and extracts thesearch query, e.g., the search terms or keywords. The plug-in software216 initiates a transmission of the search query to the search registryserver 120, e.g., using any desired network transmission protocol. Theoperating system 220 and hardware 230 coordinate to transmit the messageinitiated by the plug-in software 216 in a manner apparent to thoseskilled in the art. The search registry server 120 responds to thetransmission by analyzing the search query, as discussed previously, todetermine whether the search query is for the same subject matter whichhas been requested by other users, and/or for which a dialogue hasalready been launched. The search registry server 120 transmits amessage back to the plug-in software 216, via the hardware 230 and theoperating system 220, indicating whether a dialogue for the searched forsubject matter has been launched, and other information such as how manyusers have joined the dialogue. The plug-in software 216 initiates thedisplay of the information relating to the dialogue on the userinterface, e.g., screen. Additionally, similar to the above case, animplementation is possible wherein the client PC only uses a web browserthat communicates with the search engine server to achieve the desiredfunctionality, in which case the search engine server returns a web pagecontaining the search party information. In this case, there is no needfor a search registry server or a software plug-in to the web browser.

The plug-in software 216 can also fetch chat text from the chat server110 for the dialogue relating to the searched for subject matter.Furthermore, the plug-in software 216 can communicate with the chatserver 110 to provide the user recommendations and annotations discussedpreviously. The plug-in software 216 can also monitor the user'sactivities such as for the purpose of processing a user request to exitthe dialogue, or automatically removing the user from the dialogue aftera specified time-out period in which the user is inactive, for instance,or when it is detected that the user has closed the search engineapplication or the search party application. The plug-in software 216can further enable the user to preview a dialogue before joining, aswell as transmit additional search queries made by the user to the chatserver 110 for sharing with other users in the dialogue. The plug-insoftware 216 can also allow a user to participate in multiple dialoguesat the same time for different subjects, e.g., via different instancesof the search engine application, e.g., the web browser 212, indifferent windows. In one possible approach, discussed further inconnection with FIG. 12, the functionality of the software plug-in isprovided by a script such as JAVASCRIPT executing within a web page,where a non-rich web page interface is used for display.

Additionally, the plug-in software 216 can provide a rich clientapplication. Such applications provide a richer user interface (UI) byproviding a graphical interface with a number of controls for the user.A control refers to, e.g., an object in a window or dialog box thatallows a user to interface with the application and operating system.Examples of controls include push-buttons, scroll bars, radio buttons,pull-down menus, dialog boxes, pop-up windows, pull-down menus, icons,resizable window edges, progress indicators, selection boxes, windows,tear-off menus, menu bars, toggle switches and forms. A rich clientapplication can also provide access to local resources in the client PCssuch as disk storage and application programming interfaces (APIs).Because they run locally on the client computers, rich clientapplications use available resources more efficiently, and can speedresponse times. For example, as a user navigates the application, theapplication can automatically merge local data with updated informationthat is transparently picked up across the Internet or other network.

Furthermore, the plug-in software 216 may use the example pseudo-code ofTable 1 to achieve some of its functions. The pseudo-code maps to realprotocol requests such as TCP/IP requests. TABLE-US-00001

TABLE 1 Pseudo-code: Description: giveRecentText( ) used to talk to thechat server giveSuggestions( ) used to provide a list of URLsaddASuggestion( ) used to share information whosOnline( ) used to obtaina list of users setMyCurrentSearch Terms( ) used to set search terms

FIG. 3 illustrates a method in which a user communicates with otherusers who are searching for common subject matter, and recommends a linkto the other users, according to the invention. The sequence of eventsis meant to be illustrative of one possible scenario, although manyvariations are possible. At block 305, the user launches a search enginesuch as a web-based search engine. At block 310, the user enters asearch query and, at block 315, the search query is sent to the searchregistry server and the search engine server. At block 320, the searchengine server returns search results and, at block 325, the searchregistry server identifies other users searching for the same subjectmatter. This may occur before or after a search party has been launched.

If a search party has been launched, the other users searching for thesame subject matter have already been identified, and new users can beadded to the existing dialogue. If a dialogue has not yet been launched,the search registry server can identify groups of users searching forthe same subject matter using the techniques discussed previously. Asearch party can be created with two or more users. However, a minimumgroup size may be set to reduce the number of search party that arelaunched, so that a new search party is not created until the minimumnumber of users is identified. A maximum search party size can also beenforced. The users who are searching for common subject matter can beidentified, e.g., by maintaining information such as an IP or othernetwork address of the identified users.

At block 330, the search registry server forms a search party, if notalready formed, and informs each user of the number of other users whoare searching for the same subject matter. At block 335, after beingmade aware of the existence of a search party, a user can choose topreview the search party, in which case a window is opened on the userinterface displaying a recent discussion that is obtained by a backlogof comments made in the past few minutes (block 340). At this point, theuser is not actively participating in the dialogue provided by thesearch party. However, at block 345, the user can choose to activelyjoin the search party, in which case a new window, e.g., a search partywindow, opens displaying a current discussion and search queries (block350). The preview window and the search party window may open on top ofthe existing search engine window, e.g., in a cascaded manner, or on aseparate screen of a multi-screen setup, for instance. The user can viewthe dialogue, or return to browse the search results obtained from theuser's initial or subsequent searches (block 355). The user canrecommend a link to a search result to share with the other users in thesearch party (block 360), in addition to sharing a typed in annotationto the link (block 365). In response, the search party window displaysthe recommended link and the annotation for all users in the searchparty to view (block 370).

The following figures illustrate an example series of user interfacesthat may be provided by the invention.

FIG. 4 illustrates a user interface 400 of a conventional search engine,which includes a window 405 in which a search engine application runs. Abackground region behind the window 405 may include an interface of adesktop application, for example. The window 405 includes a searchengine toolbar 410 with various commands that are conventional forweb-based browsers, a region 420 in which the address of a resource on acomputer network, such as a URL, can be displayed, and a text box 430 inwhich a user can type in a search query. Note that the search query caninclude keywords as well as other search criteria defined by the user.For example, some browsers allow the user to enter an advanced searchmode in which the user can specify, e.g., that the search should locateonly an exact keyword or keywords, that the keyword should appear in acertain field of a resource, such as the title or abstract, or that acertain category of resources should be searched, e.g., based on a topicsuch as sports, news, a specific professional field, and so forth. Thesecriteria are part of the search query. In the example provided, thesearch query is for an “ankle fracture”. Such a query might be made by aperson who has hurt his or her ankle and is not sure if it is sprainedor broken. Once the query is entered, the user clicks on a “search”button 440 to run the search.

FIG. 5 illustrates the user interface of FIG. 4 in which search resultsare displayed, and which further indicates that a search party relatingto searched for subject matter is available, according to the invention.Specifically, the search engine window 505 in the user interface 500displays links to resources such as web pages having articles relatingto ankle fractures. The links may include a title as well as a previewof the text of the resource. Additionally, a toolbar button 510, whichreads “Search Party (4 of 12 people)” indicates that a search partyrelating to the subject matter of ankle fractures is available, and thatout of twelve users who are searching for the same subject matter, fourof the users have chosen to participate in the search party. Asmentioned, the search party allows the users to communicate such as byon-line chatting and sharing links to resources.

FIG. 6 illustrates a search party preview window 620, according to theinvention. A user may preview a dialogue before joining it by viewingrecent discussions between active members, e.g., from stored backlogs ofthe discussions. This allows a user to quickly ascertain whether thedialogue is of interest. In particular, in the search engine window 605of the user interface 600, the search party preview window 620 openswhen the user clicks on, or mouses over, the button 510, for instance.The chat server 110 can pre-fill the window 620 with the past fewminutes of recent discussions so that the user can quickly determine ifthe search party will be helpful without waiting for new comments toappear. The window 620 includes a region 625 in which the comments ofthe different users appear next to respective screen names of the users.Additionally, it can be seen that one of the comments includes ahyperlink entitled “eMedicine Health—Ankle Fracture Overview”. The usercan click on this link to view the associated web page. The windowfurther includes a region 630 that lists recent search partysuggestions/links. Although the suggestion relating to “Vermont TeddyBear Co.” does not seem to be relevant, the comments overall seem to berelevant, and the user may choose to join the dialogue by clicking onthe “Join Search Party” button 640.

FIG. 7 illustrates a search party window 710, according to theinvention, which may appear in a cascaded form over the search enginewindow 705 of the user interface 700. A region 715 of the window 710includes the live chat from the users in the search party, while aregion 720 includes search queries that other users have used, and amember roster that is associated with the chat window. As can be seen,the recent search queries include “fibula syndesome” from a user named“Conjurer5”, “ankle fracture”, which is the query of the present user,“Greg”, who recently joined the search party, and “broken ankle” from auser named “_zbot_”, who joined the search party after Greg. The searchqueries in the region 720 can be updated as the users run furthersearches. The text in the region 715 is also updated as the users enteradditional comments in the dialogue. A checkbox 730 in the window 710allows the users to indicate whether they elect to have any searchqueries they provide shared, while still in the search party, with theother users, such as in the region 720. This aids in the disseminationof search strategies. A text box 725 allows the user to type in textthat will appear in the chat. After typing in text, the user may pressthe “enter” key on a keyboard, for example, to cause the text to betransmitted from the local client to the chat server 110, for instance,using techniques apparent to those skilled in the art.

Generally, the search party can be implemented using different types ofcommunication modes. In the example given, on-line chatting is providedalong with sharing of links and search queries. However, it is alsopossible to provide only a subset of these features, or to provide otherfeatures. For example, only sharing of links may be provided, or onlychatting. Furthermore, the search registry server 120 may analyze thesearch queries and communications made by the users to better formulatesearch engine strategies, or for other purposes. The search registryserver 120 may also track the number of users that elect to participatein a search party, the average time spent in a search party, and so on,for statistical purposes. In another possible approach, users mayconsent to sharing certain personal information with the search registryserver 120, such as their geographic location, age, gender or otherdemographic information. In this case, the search registry server 120can select which users are identified for participation in a searchparty based on the personal information. For instance, separate searchparties may be formed for women and men searching for information on thesubject of “motorcycling”. In another option, the identified users cansend email messages to one another, either using their actual emailaddresses, or anonymously. In a further possible option, the identifiedusers can be joined in a video or audio conference.

After viewing the search party window 710, the user may decide to returnto the previous search results to explore them in further detail. Theuser may return to the search engine window 805 in the interface 800 byclicking on the search engine window 805, for instance, or by minimizingthe search party window 710, as shown in FIG. 8.

FIG. 8 illustrates the user interface of FIG. 4, which further includesa button that allows a user to recommend a resource located by thesearch engine to other users in the search party, according to theinvention. Specifically, when a user has joined a dialogue, a controlsuch as a button 810, entitled “Recommend to Search Party”, can bedisplayed on the search engine window 805 in the user interface 800 toallow the user to recommend a resource such as a web page to other usersin the dialogue. Note also that a button 820 at the bottom of theinterface 800 indicates that the search party application is running inthe background. This application can be returned to the foreground byclicking on the button 820. In the user interface 800, the user has notyet selected a particular resource, so the button 810 is inactive.Clicking on the button 810 causes a recommendation window to appear thatallows the user to recommend a specific resource that the user iscurrently browsing, e.g., by sharing a link to the resource with otherusers in the dialogue.

FIG. 9 illustrates a user interface of a search engine that displays adetailed view of a selected resource located by the search engine, wherethe button that allows the user to recommend the resource to other usersin the search party is selected, according to the invention. Once theuser selects a particular search result to view in detail, thecorresponding resource, such as a web page, is displayed in a region 910of the search engine window 905 in the user interface 900. In thepresent example, the resource is a web page with a link entitled “AnkleFractures—Broken Ankle”. The detailed text of the web page is alsodisplayed. After reading the web page, the user may decide to click onthe “Recommend to Search Party” button 810 to share the resource withthe other users in the search party.

FIG. 10 illustrates a window for entering an annotation to accompany arecommended resource, according to the invention. Once the user selectsthe button 810, a recommendation window 1010 is displayed on the searchengine window 1005 on the interface 1000. The window 1010 includes aportion 1012 that is the link to the recommended resource, and a textbox portion 1014 that allows the user to type in an annotation to thelink. In the present example, the user types in the annotation “my dr.says this is great”, and selects the “recommend” button 1016 to transmitthe link and the annotation to the chat server 110, for instance, forsharing with the other users in the search party.

FIG. 11 illustrates the search party window 710 of FIG. 7 in which therecommended resource and the accompanying annotation are displayed,according to the invention. In particular, the text 717 in the region715 reads: “Greg recommends: Ankle Fractures—Broken Ankle, ‘my dr. saysthis is great’”. The link “Ankle Fractures—Broken Ankle” may appear in ahighlighted manner to indicate that it is an active link, such as a URL,that the users can click on to view the associated resource. In thisexample, the recommendations are displayed together with the generalchat, in the region 715. However, it is also possible for therecommendations from the different users to be aggregated and displayedin a region of the dialogue window 710, e.g. at the bottom of thewindow, that is separate from the region in which the general chatconversation occurs.

FIG. 12 illustrates a method for carrying out a web page-basedembodiment for enabling users who are searching for common subjectmatter to communicate with one another, according to the invention. Asdiscussed previously in connection with FIG. 2, the functionality of thesoftware plug-in 216 can be provided instead by a script such asJAVASCRIPT executing within a web page, where a non-rich web pageinterface is used for display. ECMAscript, commonly called JAVASCRIPT orJSCRIPT, is a scripting language that can interact with HTML source codeto provide dynamic content for web pages. INTERNET EXPLORER® supports asubset of JAVASCRIPT that MICROSOFT® refers to as JSCRIPT®. A scriptinglanguage is a simple or lightweight programming language for writingscripts. A script, also referred to as a macro or batch file, provides alist of commands that can be executed without user interaction.

The embodiment described in FIG. 12 uses a web-page only search engineimplementation to achieve the search party functionality. In this case,the search registry server 120 is not needed. At block 1200, the userlaunches a search engine via a web browser, and the search enginereturns a web search page, such as shown in FIG. 4, that is displayed inthe web browser. At block 1205, the user enters a search query by typingin one or more search keywords and presses “enter” or selects a “search”button. At block 1210, the web browser transmits the search query to thesearch engine using a protocol such as HTTP. At block 1215, the searchengine server identifies users who are searching for common subjectmatter, using techniques discussed previously, and queries the chatserver 110 to determine if a search party has already been set up forthe subject matter. If a search party has already been set up, thesearch engine server obtains information relating to the search, such asthe number of eligible and actual participants, and past chat discussiontext. The search engine server can alternatively form a search party, ifneeded. The search engine server also performs a search using the searchquery to obtain search results.

At block 1220, the search engine server returns a web page containingthe results of the search to the web browser. Other information that isreturned to the web browser can include the information regarding thesearch party, such as the availability of the search party, the numberof people currently participating, past chat discussion text, and soforth, in addition to a script program implementation of software forimplementing the search party functionality. A script can be providedthat works inside web pages and displays information using the webbrowser. When the script executes, the search party chat box is added tothe search web page, which contains the search results, as seen in FIG.7. Advantageously, with this approach, there is no need for the user toinstall additional software to achieve the search party functionality.

At block 1225, the web browser can execute the script to communicatewith the search engine, such as by using XML-RPC requests and responses.RPC, or remote procedure call, is a type of protocol that allows aprogram on one computer to execute a program on a server computer. UsingRPC, a system developer is not required to develop specific proceduresfor the server. The client program sends a message to the server withappropriate arguments and the server returns a message containing theresults of the program executed. CORBA and DCOM provide the same typesof capabilities as traditional RPCs, and may also be used. XML-RPC isnewer than DCOM and CORBA, though it is more simplistic, being designedfor web use rather than complicated enterprise RPC needs. In particular,XML-RPC is a technique for encoding procedure call strings as simpleXML, which are then interpreted by the server software. XML-RPC requiresthe server computer to have code that is responsive to the XML-RPCprotocol requests, it does not allow the client to execute arbitrarycode on the server. The main advantage of XML-RPC is that it is easy touse from a lightweight scripting language such as JAVASCRIPT.

At block 1230, the search engine server passes requests or calls fromthe web browser to the chat server, and passes the correspondingresponses back to the script, such as ECMAscript code, inside the webpage/browser. This communication may use code that is analogous to thepseudocode API described above in connection with Table 1.

The invention has been described herein with reference to particularexemplary embodiments. Certain alterations and modifications may beapparent to those skilled in the art, without departing from the scopeof the invention. The exemplary embodiments are meant to beillustrative, not limiting of the scope of the invention.

1. A method, comprising: launching, by a processor, a dialogue windowfor two users to communicate with one another via respective clientdevices relating to a particular subject; receiving, by the processor, asearch query from an additional user comprising a keyword associatedwith the particular subject; retrieving, by the processor in response tothe request, a backlog of a recent discussion between the two usersrelating to the particular subject, wherein the backlog of the recentdiscussion occurred prior to the request from the additional user beingreceived; and providing, by the processor to the additional user, thebacklog of the recent discussion comprising a suggested link relating tothe recent discussion.
 2. The method of claim 1, wherein the suggestedlink comprises a hyperlink to a resource relating to the particularsubject.
 3. The method of claim 1, further comprising receiving, fromthe additional user, a request to join a current discussion between thetwo users relating to the particular subject.
 4. The method of claim 1,further comprising identifying, by the processor, respective searchqueries for the particular subject from the two users.
 5. The method ofclaim 1, further comprising receiving the suggested link relating to therecent discussion from one of the two users.
 6. A non-transitorycomputer program storage device including instructions that, whenexecuted by a processor, cause the processor to perform operationscomprising: launching, by the processor, a dialogue window for two usersto communicate with one another via respective client devices relatingto a particular subject; receiving, by the processor, a search queryfrom an additional user comprising a keyword associated with theparticular subject; retrieving, by the processor in response to therequest, a backlog of a recent discussion between the two users relatingto the particular subject, wherein the backlog of the recent discussionoccurred prior to the request from the additional user being received;and providing, by the processor to the additional user, the backlog ofthe recent discussion comprising a suggested link relating to the recentdiscussion.
 7. The non-transitory computer program storage device ofclaim 6, wherein the suggested link comprises a hyperlink to a resourcerelating to the particular subject.
 8. The non-transitory computerprogram storage device of claim 6, further comprising receiving, fromthe additional user, a request to join a current discussion between thetwo users relating to the particular subject.
 9. The non-transitorycomputer program storage device of claim 6, further comprisingidentifying, by the processor, respective search queries for theparticular subject from the two users.
 10. The non-transitory computerprogram storage device of claim 6, further comprising receiving thesuggested link relating to the recent discussion from one of the twousers.
 11. A computer system comprising: a memory; and a processor,connected to the memory, to execute the instructions, the processorconfigured to: launch a dialogue window for two users to communicatewith one another via respective client devices relating to a particularsubject, receive a search query from an additional user comprising akeyword associated with the particular subject, retrieve, in response tothe request, a backlog of a recent discussion between the two usersrelating to the particular subject, wherein the backlog of the recentdiscussion occurred prior to the request from the additional user beingreceived, and provide, to the additional user, the backlog of the recentdiscussion comprising a suggested link relating to the recentdiscussion.
 12. The computer system of claim 11, wherein the suggestedlink comprises a hyperlink to a resource relating to the particularsubject.
 13. The computer system of claim 11, further comprisingreceiving, from the additional user, a request to join a currentdiscussion between the two users relating to the particular subject. 14.The computer system of claim 11, further comprising identifying, by theprocessor, respective search queries for the particular subject from thetwo users.
 15. The computer system of claim 11, further comprisingreceiving the suggested link relating to the recent discussion from oneof the two users.